/**
 *注意有base64转换在其中
 */

var CryptoJS = require('./aes.js'); //引用AES源码js
var key = CryptoJS.enc.Utf8.parse("zynz201908101231"); //十六位十六进制数作为秘钥  （后端提供，或者说明）
var iv = CryptoJS.enc.Utf8.parse("zynz20190810zynz"); //十六位十六进制数作为秘钥偏移量 （后端提供，或者说明）
//解密方法(CBC模式)
function Decrypt(word) {
    var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
    var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    var decrypt = CryptoJS.AES.decrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);

    return decryptedStr.toString();
}
//加密方法
function Crypt(word) {
    var srcs = CryptoJS.enc.Utf8.parse(word);
    var encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // return encrypted.ciphertext.toString().toUpperCase();  //  base64
    return encrypted.toString()
}

//暴露接口
module.exports.Decrypt = Decrypt;
module.exports.Crypt = Crypt;